/**
 * 
 */
package org.obiwan.subbuteo.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.appfuse.model.BaseObject;

/**
 * @author ddefrancesco
 *
 */
@Entity(name="classifica")
@Table(name="classifica")
public class Classifica
    extends BaseObject
{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private Long idClassifica;
    private Torneo torneo;
    private Partecipante team;
    private Integer punteggio;
    private Integer numeroVinte;
    private Integer numeroPerse;
    private Integer numeroPari;
    private Integer mediaInglese;
    /**
     * @return the idClassifica
     */
    @Id 
    
    public Long getIdClassifica()
    {
        return idClassifica;
    }

    /**
     * @return the torneo
     */
    @ManyToOne(targetEntity=org.obiwan.subbuteo.model.Torneo.class,fetch=FetchType.LAZY)
    @JoinColumn(name="torneo",referencedColumnName="idTorneo")
    public Torneo getTorneo()
    {
        return torneo;
    }

    /**
     * @return the team
     */
    @ManyToOne(targetEntity= org.obiwan.subbuteo.model.Partecipante.class,fetch=FetchType.LAZY)
    @JoinColumn(name="team",referencedColumnName="idPartecipante")
    public Partecipante getTeam()
    {
        return team;
    }

    /**
     * @return the punteggio
     */
    @Column(name="valo_punteggio",updatable= true)
    public Integer getPunteggio()
    {
        return punteggio;
    }

    /**
     * @return the numeroVinte
     */
    @Column(name="numero_vinte",updatable= true)
    public Integer getNumeroVinte()
    {
        return numeroVinte;
    }

    /**
     * @return the numeroPerse
     */
    @Column(name="numero_perse",updatable= true)
    public Integer getNumeroPerse()
    {
        return numeroPerse;
    }

    /**
     * @return the numeroPari
     */
    @Column(name="numero_pari",updatable= true)
    public Integer getNumeroPari()
    {
        return numeroPari;
    }

    /**
     * @return the mediaInglese
     */
    @Column(name="media_inglese",updatable= true)
    public Integer getMediaInglese()
    {
        return mediaInglese;
    }

    /**
     * @param idClassifica the idClassifica to set
     */
    public void setIdClassifica( Long idClassifica )
    {
        this.idClassifica = idClassifica;
    }

    /**
     * @param torneo the torneo to set
     */
    public void setTorneo( Torneo torneo )
    {
        this.torneo = torneo;
    }

    /**
     * @param team the team to set
     */
    public void setTeam( Partecipante team )
    {
        this.team = team;
    }

    /**
     * @param punteggio the punteggio to set
     */
    public void setPunteggio( Integer punteggio )
    {
        this.punteggio = punteggio;
    }

    /**
     * @param numeroVinte the numeroVinte to set
     */
    public void setNumeroVinte( Integer numeroVinte )
    {
        this.numeroVinte = numeroVinte;
    }

    /**
     * @param numeroPerse the numeroPerse to set
     */
    public void setNumeroPerse( Integer numeroPerse )
    {
        this.numeroPerse = numeroPerse;
    }

    /**
     * @param numeroPari the numeroPari to set
     */
    public void setNumeroPari( Integer numeroPari )
    {
        this.numeroPari = numeroPari;
    }

    /**
     * @param mediaInglese the mediaInglese to set
     */
    public void setMediaInglese( Integer mediaInglese )
    {
        this.mediaInglese = mediaInglese;
    }

    /* (non-Javadoc)
     * @see java.lang.Object#equals(java.lang.Object)
     */
    @Override
    public boolean equals( final Object other )
    {
        if ( !( other instanceof Classifica ) )
            return false;
        Classifica castOther = (Classifica) other;
        return new EqualsBuilder().append( idClassifica, castOther.idClassifica ).append( torneo, castOther.torneo ).append(team,castOther.team ).append(punteggio,castOther.punteggio ).append(numeroVinte,castOther.numeroVinte ).append(numeroPerse,castOther.numeroPerse ).append(numeroPari,castOther.numeroPari ).append(mediaInglese,castOther.mediaInglese ).isEquals();
    }

    /* (non-Javadoc)
     * @see java.lang.Object#hashCode()
     */
    @Override
    public int hashCode()
    {
        return new HashCodeBuilder().append( idClassifica ).append( torneo ).append( team ).append( punteggio ).append(numeroVinte ).append(numeroPerse ).append(numeroPari ).append(mediaInglese ).toHashCode();
    }

    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString()
    {
        return new ToStringBuilder( this ).append( "idClassifica", idClassifica ).append( "torneo", torneo ).append("team",team ).append("punteggio",punteggio ).append("numeroVinte",numeroVinte ).append("numeroPerse",numeroPerse ).append("numeroPari",numeroPari ).append("mediaInglese",mediaInglese ).toString();
    }

 

}
